#ifndef ZEMAPHORE_H
#define ZEMAPHORE_H
#include <header.h>
typedef struct _zem_t { 
    int value; 
    pthread_cond_t cond; 
    pthread_mutex_t lock; 
} zem_t; 

// only one thread can call this 
void zem_init(zem_t *s, int value);

// P
void zem_wait(zem_t *s);
// V
void zem_post(zem_t *s);

void zem_destory(zem_t *s);

#endif